package educar.gui;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;

import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;

import javax.swing.JPanel;
import javax.swing.JTextField;

import javax.swing.WindowConstants;
import javax.swing.SwingUtilities;

import educar.controllers.DocenteController;
import educar.controllers.MateriaController;
import educar.controllers.TransaccionAlumnoController;
import educar.controllers.TransaccionDocenteController;
import educar.models.Actividad;
import educar.models.Session;


/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class DocenteView extends javax.swing.JFrame implements IView {
	private JPanel PanelActividad;

	private JPanel PanelResolucion;
	private JLabel label1;
	private JComboBox JComboBoxActividadEliminar;
	private JButton BotonEliminar;
	private JPanel PanelEliminarActividad;
	private JButton EliminarActividad;
	private JButton ConfirmarButton;
	private JLabel NotaLabel;
	private JTextField CampoNota;
	private JButton DescargarSolucion;
	private JButton jButton1;
	private JComboBox JComboBoxAlumnos;
	private JComboBox ComboBoxMateriasEnResolucion;
	private JComboBox ComboBoxMateriasEnEliminarActividad;
	private JTextField NombreActividad;
	private JComboBox ListaMaterias;
	private JComboBox ComboBoxActividadesAEliminar;
	private JButton Logout;
	private JButton CargarResolucion;
	private JButton CargarActividad;
	private JPanel PanelBotones;
	private OyenteBotones oyenteBotones;
	private TransaccionDocenteController controladorDocente;
	private JComboBox ComboBoxActividadesEnResolucion;
	private JButton BotonBuscarActividades;
	private JButton BotonEliminarActividad;
	private JButton VerAlumnos;
	private JButton VerAlumnosYActividades;
	
	/**
	* Auto-generated main method to display this JFrame
	*/
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				DocenteView inst = new DocenteView();
				inst.setLocationRelativeTo(null);
				inst.setVisible(true);
			}
		});
	}
	
	public DocenteView() {
		super();
		initGUI();
	}
	
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			setTitle("Docente");
			oyenteBotones=new OyenteBotones();
			controladorDocente=new TransaccionDocenteController(this);
			{
				getContentPane().setLayout(null);
				setResizable(false);
			}
			{
				PanelBotones = new JPanel();
				PanelBotones.setLayout(null);
				getContentPane().add(PanelBotones);
				PanelBotones.setBounds(0, 0, 246, 332);
				PanelBotones.setBackground(Color.BLACK);
				{
					CargarResolucion = new JButton();
					PanelBotones.add(CargarResolucion);
					CargarResolucion.setText("Cargar Resolucion");
					CargarResolucion.setBounds(12, 154, 223, 32);
					CargarResolucion.addActionListener(oyenteBotones);

				}
				{
					CargarActividad = new JButton();
					PanelBotones.add(CargarActividad);
					CargarActividad.setText("Cargar una actividad");
					CargarActividad.setBounds(12, 56, 223, 34);
					CargarActividad.addActionListener(oyenteBotones);
				}
				{
					Logout = new JButton();
					PanelBotones.add(Logout);
					Logout.setText("Salir");
					Logout.setBounds(72, 241, 102, 33);
					Logout.addActionListener(oyenteBotones);
				}
				{
					EliminarActividad = new JButton();
					PanelBotones.add(EliminarActividad);
					EliminarActividad.setText("Eliminar una Actividad");
					EliminarActividad.setBounds(12, 106, 223, 37);
					EliminarActividad.addActionListener(oyenteBotones);
				}
			}
			{
				PanelActividad = new JPanel();
				PanelActividad.setLayout(null);
				PanelActividad.setVisible(false);
				getContentPane().add(PanelActividad);
				PanelActividad.setBounds(246, 0, 324, 332);
				PanelActividad.setBackground(new Color(240,200,0));
				TransaccionDocenteController controlador = new TransaccionDocenteController(this);
				{
					ComboBoxModel ListaMateriasModel = 
						new DefaultComboBoxModel(controladorDocente.listarMateriasPorDocente());
					ListaMaterias = new JComboBox();
					PanelActividad.add(ListaMaterias);
					ListaMaterias.setModel(ListaMateriasModel);
					ListaMaterias.setBounds(38, 185, 238, 22);
				}
				{
					NombreActividad = new JTextField();
					PanelActividad.add(NombreActividad);
					NombreActividad.setText("Ingrese el nombre de la actividad");
					NombreActividad.setBounds(12, 56, 287, 35);
				}
				{
					label1 = new JLabel();
					PanelActividad.add(label1);
					label1.setText("Seleccione materia de la actividad");
					label1.setBounds(24, 139, 270, 15);
				}
				{
					jButton1 = new JButton();
					PanelActividad.add(jButton1);
					jButton1.setText("Cargar Actividad");
					jButton1.setBounds(63, 241, 206, 30);
					jButton1.addActionListener(controlador);
				}
			}
			{
				PanelResolucion = new JPanel();
				PanelResolucion.setLayout(null);
				PanelResolucion.setVisible(false);
				PanelResolucion.setBackground(new Color(240,200,0));
				getContentPane().add(PanelResolucion);
				PanelResolucion.setBounds(246, 0, 324, 332);
				TransaccionDocenteController controlador = new TransaccionDocenteController(this);
				{
					ComboBoxModel ListaMaterias2Model = 
						new DefaultComboBoxModel(controladorDocente.listarMateriasPorDocente());
					ComboBoxMateriasEnResolucion = new JComboBox();
					PanelResolucion.add(ComboBoxMateriasEnResolucion);
					ComboBoxMateriasEnResolucion.setModel(ListaMaterias2Model);
					ComboBoxMateriasEnResolucion.setBounds(12, 12, 300, 22);
				}
				{
					ComboBoxModel ListaMaterias2Model = 
						new DefaultComboBoxModel(
								new String[] { "**ALUMNOS**" });
					JComboBoxAlumnos = new JComboBox();
					PanelResolucion.add(JComboBoxAlumnos);
					JComboBoxAlumnos.setModel(ListaMaterias2Model);
					JComboBoxAlumnos.setBounds(12, 85, 300, 22);
				}
				{
					ComboBoxModel ListaActividadesModel = 
						new DefaultComboBoxModel(
								new String[] { "**ACTIVIDADES**" });
					ComboBoxActividadesEnResolucion = new JComboBox();
					PanelResolucion.add(ComboBoxActividadesEnResolucion);
					ComboBoxActividadesEnResolucion.setModel(ListaActividadesModel);
					ComboBoxActividadesEnResolucion.setBounds(12, 140, 300, 22);				}
				{
					DescargarSolucion = new JButton();
					PanelResolucion.add(DescargarSolucion);
					DescargarSolucion.setText("Descargar Solucion");
					DescargarSolucion.setBounds(61, 211, 209, 30);
				}
				{
					VerAlumnosYActividades = new JButton();
					PanelResolucion.add(VerAlumnosYActividades);
					VerAlumnosYActividades.setText("Enter");
					VerAlumnosYActividades.setBounds(61, 45, 209, 30);
					VerAlumnosYActividades.addActionListener(controlador);
				}
				{
					CampoNota = new JTextField();
					PanelResolucion.add(CampoNota);
					CampoNota.setBounds(228, 252, 42, 22);
				}
				{
					NotaLabel = new JLabel();
					PanelResolucion.add(NotaLabel);
					NotaLabel.setText("Ingresar Nota");
					NotaLabel.setBounds(55, 252, 192, 20);
				}
				{
					ConfirmarButton = new JButton();
					PanelResolucion.add(ConfirmarButton);
					PanelResolucion.add(JComboBoxAlumnos);
					ConfirmarButton.setText("Listo");
					ConfirmarButton.setBounds(130, 285, 74, 35);
					ConfirmarButton.addActionListener(controlador);
				}
			}
			{
				PanelEliminarActividad = new JPanel();
				PanelEliminarActividad.setLayout(null);
				PanelEliminarActividad.setVisible(false);
				PanelEliminarActividad.setBackground(new Color(240,200,0));
				getContentPane().add(PanelEliminarActividad);
				PanelEliminarActividad.setBounds(246, 0, 324, 332);
				TransaccionDocenteController controladorDocente = new TransaccionDocenteController(this);
				{
					BotonBuscarActividades = new JButton();
					PanelEliminarActividad.add(BotonBuscarActividades);
					BotonBuscarActividades.setText("Buscar Actividades");
					BotonBuscarActividades.setBounds(60, 67, 210, 30);
					BotonBuscarActividades.addActionListener(controladorDocente);
				}
				{
					BotonEliminarActividad = new JButton();
					PanelEliminarActividad.add(BotonEliminarActividad);
					BotonEliminarActividad.setText("Eliminar Actividad");
					BotonEliminarActividad.setBounds(60, 150, 210, 30);
					BotonEliminarActividad.addActionListener(controladorDocente);
				}
				{
					ComboBoxModel ComboBoxActividadesAEliminarModel = 
						new DefaultComboBoxModel(new String[] {"**ACTIVIDADES**"} );
					ComboBoxActividadesAEliminar = new JComboBox();
					PanelEliminarActividad.add(ComboBoxActividadesAEliminar);
					ComboBoxActividadesAEliminar.setModel(ComboBoxActividadesAEliminarModel);
					ComboBoxActividadesAEliminar.setBounds(20,110,290,22); 
				}
				{			
					ComboBoxModel JComboBoxActividadesModel = 
					new DefaultComboBoxModel(controladorDocente.listarMateriasPorDocente());
					ComboBoxMateriasEnEliminarActividad = new JComboBox();
					ComboBoxMateriasEnEliminarActividad.setModel(JComboBoxActividadesModel);
					ComboBoxMateriasEnEliminarActividad.setBounds(20, 30, 290, 22);
					PanelEliminarActividad.add(ComboBoxMateriasEnEliminarActividad);
		    	}
				
			}
			pack();
			this.setSize(572, 362);
		} catch (Exception e) {
		    //add your error handling code here
			e.printStackTrace();
		}
	}

	@Override
	public void present(String model) {
		// TODO Auto-generated method stub
		
	}
	
	private void destruirVentana(){
		this.dispose();
	}
	
	private class OyenteBotones implements ActionListener {

		public void actionPerformed(ActionEvent evento) {
			if(evento.getActionCommand().equals("Cargar una actividad"))
			{
				PanelResolucion.setVisible(false);
				PanelEliminarActividad.setVisible(false);
				PanelActividad.setVisible(true);
				refrescarCampos();
			}
			if(evento.getActionCommand().equals("Cargar Resolucion"))
			{
				PanelEliminarActividad.setVisible(false);
				PanelActividad.setVisible(false);
				PanelResolucion.setVisible(true);
				refrescarCampos();
			}
			if(evento.getActionCommand().equals("Salir"))
			{
				refrescarCampos(); 
				destruirVentana();
				
			}
			if(evento.getActionCommand().equals("Eliminar una Actividad"))
			{
				PanelResolucion.setVisible(false);
				PanelActividad.setVisible(false);
				PanelEliminarActividad.setVisible(true);
				refrescarCampos();
			}
		}
	}
	
	public String getDescripcionActividad() {
		return NombreActividad.getText();
	}
	
	public String getCodigoMateriaDeCargarActividad() {
		String a=(String)ListaMaterias.getModel().getSelectedItem();
		String respuesta = "";
		if(a!="**MATERIAS**")
		{
			String materia=(String)ListaMaterias.getModel().getSelectedItem();
			int i=1;
			while (materia.charAt(i)!=')')
			{
				respuesta=respuesta+materia.charAt(i);
				i++;
			}
			return respuesta;
		}
		else
			return a;
	}
	
	public String getCodigoActividadDeEliminarActividad() {
		String a = (String)ComboBoxActividadesAEliminar.getSelectedItem();
		String respuesta = "";
		if(a!="**ACTIVIDADES**")
		{
			String actividad=(String)ComboBoxActividadesAEliminar.getModel().getSelectedItem();
			int i=1;
			while (actividad.charAt(i)!=')')
			{
				respuesta=respuesta+actividad.charAt(i);
				i++;
			}
			return respuesta;
		}
		else
			return a;
	}
	
	public String getCodigoMateriaDeEliminarActividad() {
		String a = (String)ComboBoxMateriasEnEliminarActividad.getModel().getSelectedItem();
		String respuesta = "";
		if(a!="**MATERIAS**")
		{
			String materia=(String)ComboBoxMateriasEnEliminarActividad.getModel().getSelectedItem();
			int i=1;
			while (materia.charAt(i)!=')')
			{
				respuesta=respuesta+materia.charAt(i);
				i++;
			}
			return respuesta;
		}
		else
			return a;
	}
	
	public String getCodigoMateriaDeResolucion() {
		String a = (String)ComboBoxMateriasEnResolucion.getModel().getSelectedItem();
		String respuesta = "";
		if(a!="**MATERIAS**")
		{
			String materia=(String)ComboBoxMateriasEnResolucion.getModel().getSelectedItem();
			int i=1;
			while (materia.charAt(i)!=')')
			{
				respuesta=respuesta+materia.charAt(i);
				i++;
			}
			return respuesta;
		}
		else
			return a;
	}
	
	public String getDniAlumnoDeResolucion() {
		String a = (String)JComboBoxAlumnos.getModel().getSelectedItem();
		String respuesta = "";
		if(a!="**ALUMNOS**")
		{
			String alumno=(String)JComboBoxAlumnos.getModel().getSelectedItem();
			int i=1;
			while (alumno.charAt(i)!=')')
			{
				respuesta=respuesta+alumno.charAt(i);
				i++;
			}
			return respuesta;
		}
		else
			return a;
	}
	
	public String getCodigoActividadesEnResolucion() {
		String a = (String)ComboBoxActividadesEnResolucion.getModel().getSelectedItem();
		String respuesta = "";
		if(a!="**ACTIVIDADES**")
		{
			String actividad=(String)ComboBoxActividadesEnResolucion.getModel().getSelectedItem();
			int i=1;
			while (actividad.charAt(i)!=')')
			{
				respuesta=respuesta+actividad.charAt(i);
				i++;
			}
			return respuesta;
		}
		else
			return a;
	}
	
	public void actualizarActividadesEnEliminarActividad(String [] actividades){
	    try {
	    ComboBoxActividadesAEliminar.removeAllItems();
		for(int i = 0; i < actividades.length; i++){
			ComboBoxActividadesAEliminar.addItem(actividades[i]);
		}
		
	    } catch(Exception e) {}
	}
	
	public void actualizarMateriasEnEliminarActividad(String [] materias){
	    try {
	    	ComboBoxMateriasEnEliminarActividad.removeAllItems();
		for(int i = 0; i < materias.length; i++){
			ComboBoxMateriasEnEliminarActividad.addItem(materias[i]);
		}
		
	    } catch(Exception e) {}
	}
	
	public void actualizarAlumnos(String [] alumnos){
	    try {
	    	JComboBoxAlumnos.removeAllItems();
		for(int i = 0; i < alumnos.length; i++){
			JComboBoxAlumnos.addItem(alumnos[i]);
		}
		
	    } catch(Exception e) {}
	}
	
	public void actualizarMateriasEnResolucion(String [] materias){
	    try {
	    	ComboBoxMateriasEnResolucion.removeAllItems();
		for(int i = 0; i < materias.length; i++){
			ComboBoxMateriasEnResolucion.addItem(materias[i]);
		}
		
	    } catch(Exception e) {}
	}
	
	public void actualizarActividadesEnResolucion(String [] actividades){
	    try {
	    	ComboBoxActividadesEnResolucion.removeAllItems();
		for(int i = 0; i < actividades.length; i++){
			ComboBoxActividadesEnResolucion.addItem(actividades[i]);
		}
		
	    } catch(Exception e) {}
	}
	
	public void actualizarMateriasEnCargarActividad(String [] materias){
	    try {
	    	ListaMaterias.removeAllItems();
		for(int i = 0; i < materias.length; i++){
			ListaMaterias.addItem(materias[i]);
		}
		
	    } catch(Exception e) {}
	}
	public int getNotaAlumno(){
		int nota = -1;
		try {
			nota = Integer.parseInt(CampoNota.getText());
		} catch (NumberFormatException e) {}
		if ((nota<1)||(nota>10))
			return -1;
		else
			return nota;
	}
	
	public void refrescarCampos(){
		NombreActividad.setText("Ingrese el nombre de la actividad");
		this.actualizarActividadesEnEliminarActividad(new String[] {"**ACTIVIDADES**"});
		this.actualizarActividadesEnResolucion(new String[] {"**ACTIVIDADES**"});
		CampoNota.setText("");
		this.actualizarAlumnos(new String[] {"**ALUMNOS**"});
		try{
			this.actualizarMateriasEnEliminarActividad(controladorDocente.listarMateriasPorDocente());
			this.actualizarMateriasEnResolucion(controladorDocente.listarMateriasPorDocente());
			this.actualizarMateriasEnCargarActividad(controladorDocente.listarMateriasPorDocente());
		} catch(SQLException e){}	
	}

}
	
	